import java.util.Arrays;

/**
 * @author VernHe
 * @date 2021年04月22日 18:33
 */
public class Solution_0452 {
    public int findMinArrowShots(int[][] points) {
        // 依据最右边进行排序
        Arrays.sort(points, (p1,p2) -> {
            return p1[1] < p2[1] ? -1 : 1;
        });

        // 箭的数量
        int arrow = 1;
        // 位置
        int pos = points[0][1];
        // 循环去判断需要几个箭
        for (int i = 1; i < points.length; i++) {
            if (pos >= points[i][0]) {
                // 如果当前气球被射爆，则目前不需要再增加箭
                continue;
            }
            // 如果没有射爆当前气球，则需要重新再射一个箭
            arrow++;
            pos = points[i][1];
        }
        return arrow;
    }
}
